import { userGetInfoService } from '@/api/user'
import { defineStore } from 'pinia'
import { ref } from 'vue'

// 用户模块 token, setToken, removeToken
export const useUserStore = defineStore('big-user', ()=>{

  // 存储 token
  const  token = ref('')

  // 存储用户信息（用户信息是一个对象）
  const user = ref({})

  /**
   * 设置 token
   * @param {*} newToken 
   */
  const setToken = (newToken) =>{
    token.value = newToken
  }

  /**
   * 移除 token
   */
  const removeToken = () =>{
    token.value = ''
  }

  /**
   * 获取用户信息并进行存储
   */
  const getUser = async () =>{
    // 请求获取用户信息
    const res = await userGetInfoService()
    user.value = res.data.data
  }

  /**
   * 设置用户信息
   * @param {*} obj 
   */
  const setUser = (obj) =>{
    user.value = obj
  }

  return{
    token,
    setToken,
    removeToken,
    user,
    getUser,
    setUser
  }
},{
  persist: true
})
